k8s 常见问题

1. yml 配置文件的编写

# 1. api版本信息
apiVersion: v1
# 2. 表示资源类型
kind: Namespace
# 3. 应用元信息 
metadata:
  name: k8s-example # 名字
  labels:
    app: k8s-example
    name: k8s-example
    project: k8s-example
# 4. 资源规范字段
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector: 
    app: redis
    spec: # Specification for the Pod
# 执行命令
kubectl create -f gerapy-ns.yaml
apiVersion: apps/v1       #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本
kind: Deployment          #该配置的类型,我们使用的是 Deployment
metadata:                   #译名为元数据,即 Deployment 的一些基本属性和信息
  name: nginx-deployment  #Deployment 的名称
  labels:                   #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组,目前不需要理解
    app: nginx  #为该Deployment设置key为app,value为nginx的标签
spec:           #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用
  replicas: 1   #使用该Deployment创建一个应用程序实例
  selector:     #标签选择器,与上面的标签共同作用,目前不需要理解
    matchLabels: #选择包含标签app:nginx的资源
      app: nginx
  template:     #这是选择或创建的Pod的模板
    metadata:   #Pod的元数据
      labels:   #Pod的标签,上面的selector即选择包含标签app:nginx的Pod
        app: nginx
    spec:       #期望Pod实现的功能(即在pod中部署)
      containers:   #生成container,与docker中的container是同一种
      - name: nginx #container的名称
        image: nginx:1.7.9  #使用镜像nginx:1.7.9创建container,该container默认80端口可访问

2. 查看集群信息

kubectl cluster-info


kubectl delete namespace NAMESPACENAME --force --grace-period=0

3. 国内拉取不了官方镜像的问题

通常,gcr.io官方镜像的命名规则为:
gcr.io/google_containers/IMAGE_NAME:IMAGE_TAG

比如:
gcr.io/google_containers/kube-apiserver-amd64:v1.10.3

docker pull 
docker tag registry.cn-shenzhen.aliyuncs.com/cookcodeblog/kube-apiserver-amd64:v1.10.3 k8s.gcr.io/kube-apiserver-amd64:v1.10.3
root@master:~# kubectl get svc --all-namespaces
NAMESPACE     NAME               TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default       kubernetes         ClusterIP      10.96.0.1        <none>        443/TCP                  17h
kube-system   kube-dns           ClusterIP      10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP   17h
kube-system   kuboard            NodePort       10.108.60.69     <none>        80:32567/TCP             17h
kube-system   metrics-server     ClusterIP      10.103.142.95    <none>        443/TCP                  16h
kubeflow      ambassador         LoadBalancer   10.97.219.110    <pending>     80:32415/TCP             16h
kubeflow      ambassador-admin   ClusterIP      10.103.196.248   <none>        8877/TCP                 16h
kubeflow      centraldashboard   ClusterIP      10.96.93.32      <none>        80/TCP                   16h
kubeflow      k8s-dashboard      ClusterIP      10.102.24.254    <none>        443/TCP                  16h
kubeflow      tf-hub-0           ClusterIP      None             <none>        8000/TCP                 16h
kubeflow      tf-hub-lb          LoadBalancer   10.100.90.243    <pending>     80:32582/TCP             16h
kubeflow      tf-job-dashboard   LoadBalancer   10.101.124.243   <pending>     80:30887/TCP             16h

4. 参考资料

kubernetes---CentOS7安装kubernetes1.11.2图文完整版


  1. kubeadm 安装 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 

  2. kubernetes安装(国内环境) 

  3. [官方]网络插件:https://kubernetes.io/zh/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/ 

  4. 《Kubernetes 指南》开源电子书:https://kubernetes.feisky.xyz/bu-shu-pei-zhi/cluster/kubeadm 


如果你觉得这篇文章对你有帮助,不妨请我喝杯咖啡,鼓励我创造更多!